package com.xinbochuang.machine.admin.mapper.system;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xinbochuang.machine.admin.domain.system.SysDept;

import java.util.List;

/**
 * @author 黄晓鹏
 * @date 2020-09-23
 */
public interface SysDeptMapper extends BaseMapper<SysDept> {

    /**
     * 查询部门管理数据
     *
     * @param dept 部门信息
     * @return 部门信息集合
     */
    List<SysDept> selectDeptList(SysDept dept);

    /**
     * 根据角色ID查询部门树信息
     *
     * @param roleId 角色ID
     * @return 选中部门列表
     */
    List<Integer> selectDeptListByRoleId(Integer roleId);

    /**
     * 根据ID查询所有子部门（正常状态）
     *
     * @param deptId 部门ID
     * @return 子部门数
     */
    int selectNormalChildrenDeptById(Integer deptId);

    /**
     * 根据ID查询所有子部门
     *
     * @param deptId 部门ID
     * @return 部门列表
     */
    List<SysDept> selectChildrenDeptById(Integer deptId);

    /**
     * 修改所在部门的父级部门状态
     *
     * @param dept 部门
     */
    void updateDeptStatus(SysDept dept);

    /**
     * 查询自有部门
     *
     * @return 结果
     */
    List<SysDept> selectOwnDeptList();

    /**
     * 查询三方部门
     *
     * @return 结果
     */
    List<SysDept> selectThirdDeptList(Integer deptId);
    /**
     * 查询部门及以下ids
     *
     * @param deptId 部门ID
     */
    List<Integer> selectDeptAndChild(Integer deptId);
}
